package com.demo.dlxOne;

import org.springframework.context.annotation.Configuration;

/**
 * @Author: lkz
 * @Title: DlxOneRabbitConfig
 * @Description: 过期消息发送到死信队列
 * @Date: 2023/10/16 14:29
 */
@Configuration
public class DlxOneRabbitConfig {

//    /**
//     * 声明交换机
//     */
//    @Bean
//    public DirectExchange normalDlxOneExchange(){
//        return ExchangeBuilder.directExchange("dlx.one.normalExchange").build();
//    }
//    /**
//     * 声明正常队列
//     */
//    @Bean
//    public Queue normalDlxOneQueue(){
//        Map<String,Object> arg=new HashMap<>();
//        arg.put("x-message-ttl",20000); //设置对列的过期时间为20秒 //删除改行 可以在发送消息的时候设置
//        // 重点：：设置这两个参数
//        arg.put("x-dead-letter-exchange","dlx.one.ttlExchange"); //设置对列的死信交换机
//        arg.put("x-dead-letter-routing-key","error"); //设置死信路由key，要和死信交换机和死信队列绑定key一模一样
//        return QueueBuilder.durable("dlx.one.normalQueue") .withArguments(arg).build();
//    }
//
//    /**
//     * 队列绑定交换机
//     */
//    @Bean
//    public Binding bindingOneNormal(DirectExchange normalDlxOneExchange,Queue normalDlxOneQueue){
//        return BindingBuilder.bind(normalDlxOneQueue).to(normalDlxOneExchange).with("order");
//    }
//
//    /**
//     * 死信交换机
//     * @return
//     */
//    @Bean
//    public DirectExchange dlxExchange(){
//        return ExchangeBuilder.directExchange("dlx.one.ttlExchange").build();
//    }
//
//    /**
//     * 死信队列
//     * @return
//     */
//    @Bean
//    public Queue dlxQueue(){
//        return QueueBuilder.durable("dlx.one.ttlQueue").build();
//    }
//
//    /**
//     * 死信交换机和死信队列绑定
//     * @param dlxExchange
//     * @param dlxQueue
//     * @return
//     */
//    @Bean
//    public Binding bindingDlx(DirectExchange dlxExchange,Queue dlxQueue){
//        return BindingBuilder.bind(dlxQueue).to(dlxExchange).with("error");
//    }

}
